<?php
/**
 * 删除文档示例
 * Created by PhpStorm.
 * User: bimUser
 * Date: 2018/1/20
 * Time: 13:29
 */

require 'config.php';
require 'vendor/autoload.php';

// 实例化连接
$db = new MongoDB\Client("mongodb://{$cnf['USERNAME']}:{$cnf['PASSWD']}@{$cnf['HOST']}:{$cnf['PORT']}/{$cnf['DBNAME']}");

// 删除一个文件
// MongoDB\Collection::deleteOne()方法删除符合过滤条件的单个文档并返回一个MongoDB\DeleteResult，
// 您可以使用该文档 访问有关删除操作的统计信息。
// 如果多个文档符合过滤条件，则 MongoDB\Collection::deleteOne()删除第一个匹配的文档。
// MongoDB\Collection::deleteOne()有一个必需的参数：一个查询过滤器，指定要删除的文档。
// 请参阅MongoDB\Collection::deleteOne()完整方法文档的 参考。

// 以下操作将删除state字段值为的第一个文档"ny"：
$collection = $db->test->users;
$collection->drop();

$collection->insertOne(['name' => 'Bob', 'state' => 'ny']);
$collection->insertOne(['name' => 'Alice', 'state' => 'ny']);
$deleteResult = $collection->deleteOne(['state' => 'ny']);

printf("Deleted %d document(s)\n", $deleteResult->getDeletedCount());


// 删除许多文件
// MongoDB\Collection::deleteMany()删除所有匹配过滤条件的文档并返回一个MongoDB\DeleteResult，您可以使用它来访问有关删除操作的统计信息。
// MongoDB\Collection::deleteMany()有一个必需的参数：一个查询过滤器，指定要删除的文档。请参阅MongoDB\Collection::deleteMany()完整方法文档的 参考。
// 以下操作将删除state字段值为的所有文档"ny"：
$collection = $db->test->users;
$collection->drop();

$collection->insertOne(['name' => 'Bob', 'state' => 'ny']);
$collection->insertOne(['name' => 'Alice', 'state' => 'ny']);
$deleteResult = $collection->deleteMany(['state' => 'ny']);

printf("Deleted %d document(s)\n", $deleteResult->getDeletedCount());
